It is known in the art to connect computers in a large, geographically-dispersed network environment and to manage such environment in a distributed manner. One such management framework consists of a server that manages a number of nodes, each of which has a local object database that stores object data specific to the local node. Each managed node typically includes a management framework, comprising a number of management routines, that is capable of a relatively large number (e.g., hundreds) of simultaneous network connections to remote machines. The framework manages hundreds of megabytes of local storage and can spawn many dozens of simultaneous processes to handle method requests from local or remote users. This amount of power, however, is quite costly. Each managed node requires upwards of a megabyte of local memory of disk plus a permanent TCP/IP connection. If a managed node sees heavy use, then such costs go up considerably. Moreover, as the number of managed nodes increases, the system maintenance problems also increase, as do the odds of a machine failure. When a machine is replaced, the old machine state must be located and restored.
The problem is exacerbated in a typical enterprise as the node number rises. Of these nodes, only a small percentage are file servers, name servers, database servers, or anything but end-of-wire or "endpoint" machines. The majority of the network machines are simple personal computers ("PC's") or workstations that see little management activity during a normal day. Nevertheless, the management routines on these machines are constantly poised, ready to handle dozens of simultaneous method invocations from dozens of widespread locations, invocations that rarely occur.
Today, companies desire to place all of their computing resources on the company network. Traditionally, the networks are TCP/IP networks. This protocol was designed almost 30 years ago, at a time when estimates of numbers of interconnected machines was relatively low. Today, the TCP/IP address space is running out of room. A typical company has a class "B" network that is configured to have a maximum of about 250 hosts per subnet. The scarcity Of network addresses has made it clear that assigning a fixed IP address to each computing resource will not be possible for much longer. Moreover, there is the problem that computers now tend to move. A laptop may be on the user's desk in the morning, but that afternoon may be plugged into the conference room subnet to drive a video presentation. With fixed addresses, each move requires system administration attention to reconfigure the network.
Moreover, the problem of keeping a distributed management framework connected is a continuous job. Any number of everyday actions can sever a connection. Whenever a network address is changed, a machine moved from location to location, or a hostname is changed, any cached location information in the system management framework becomes stale. Network reconfiguration is thus a frequent action which administrators do not wish to perform manually. The problem is bad enough with workstations, but with roaming PC's it is much worse.
There is therefore a need to provide methods for dynamically reconfiguring a managed enterprise environment having up to thousands or tens of thousands of nodes as computer resources, especially endpoints, are moved in and out of the network.